import db from "../knex";
import { Tables } from "./tables-name-enum";

export const createTable__user_info = async () => {
    if (await db.schema.hasTable(Tables.USER)) return Promise.resolve(`${Tables.USER}表已经存在，不用创建`);

    return db.schema.createTable(Tables.USER, table => {
        // 设置表
        table.engine("InnoDB");
        table.charset("utf8mb4");

        // 设置列
        table.increments("user_id").primary().unsigned().notNullable().unique().comment("用户ID");
        table.string("user_code", 100).notNullable().unique().comment("用户id, 如微信号");
        table.string("user_name", 100).notNullable().comment("用户名");
        table.string("user_pwd", 255).notNullable().comment("用户密码");
        table
            .tinyint("user_type")
            .defaultTo(3)
            .unsigned()
            .notNullable()
            .comment("用户类型, 1:超级管理员、2:管理员、3:普通用户");
        table.tinyint("user_state").defaultTo(0).unsigned().notNullable().comment("用户状态, 0:未审核、1:已审核");
        table.tinyint("is_deleted").defaultTo(0).unsigned().notNullable().comment("是否删除, 0:否、1:是");
        table.integer("created_by", 100).notNullable().comment("创建人");
        table.integer("updated_by", 100).notNullable().comment("更新人");
        // knex 支持快速生成创建时间和更新时间字段：created_at updated_at
        table.timestamps(true, true);
    });
};
